После удаления этой кнопки лично у меня вылетов больше не было. Может багованная модель или попкорновский эффект, а может триггер, который на ней висит, хз.
Попробуй выделить весь декор и поднять с помощью CTRL+PageUp, авось с отриательной z работать не хотит.
На кнопке поднятие попробовал, всё равно вылетает
Updt. Снёс всё попкорн эмиттеры с модели кнопки, и переимпортировал в карту. Вроде работает
в рефе в менеджере импорта появилась новое поле HD /SD импортируем обе модели, называем одинакого, а в списке переключаем версию графики, всё, этого достаточно.
Если вы каким то чудом не работаете в редакторе то в режиме папки у вас будет _HD.w3mod туда кидаете все HD модели, а sd модели в корень, разумеется имена должны полностью повторяться, если подели лежат в подпапке, то должно быть _HD.w3mod\models\model.mdx для HD версии и в корне игры должно быть так, models\model.mdx для SD модели
Насколько я понял, тебе нужно просто сменить текстуру. Для этого тебе по меньшей мере нужна текстура. Можно взять либо стандартную, либо создать самому (что довольно просто, если знать как).
Чтобы создать текстуру, возьми любое изображение, открой его в ФШ и сохрани как tga 32 бит с размером до 512х512 (вроде бы можно делать любой размер, не превышающий 1024х768, но я советую сохранять пропорции и делать размер не больше 512х512, или кратных половине этого числа (256/128/64/32) , за тем открой в War3 Image Extractor и переведи формат tga в blp. Потом открываешь модельку - редактор текстур и переименовываешь нужную текстуру в ту которая тебе нужна (они должны быть в одной папке) жмешь - Enter - .
Объясню, почему я удалил код: после проведённого за кодом времени, я понял, что сильно погорячился, задав такой глупый вопрос. Стоило отдохнуть, проветрить голову, и решение нашлось. Тем, кто столкнулся с хоть самую малость, но похожей проблемой, дам совет: всегда проверяйте соответствия заклинаний, написанных в коде jass (CTRL + D, если кто не знает, как узнать id заклинания) и ,конечно, сам синтаксис. Также посоветую не утраивать "свалку" в коде, как это сделал я. В общем, если кому интересно, как я решил проблему, пишите - расскажу или даже помогу если у вас она схожая.(Всё дело во внимательности)...
Сброшу код триггера таким, каким я его хотел видеть изначально:
function MU_Check_lvl_four takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A011', udg_Akame_Killer) == 4 ) ) then
return false
endif
return true
endfunction
function MU_Check_lvl_three takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A011', udg_Akame_Killer) == 3 ) ) then
return false
endif
return true
endfunction
function MU_Check_lvl_two takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A011', udg_Akame_Killer) == 2 ) ) then
return false
endif
return true
endfunction
function MU_Check_lvl_one takes nothing returns boolean
if ( not ( GetUnitAbilityLevelSwapped('A011', udg_Akame_Killer) == 1 ) ) then
return false
endif
return true
endfunction
function MU_Second_Conditions takes nothing returns boolean
if ( not ( UnitHasBuffBJ(GetEventDamageSource(), 'B008') == true ) ) then
return false
endif
if ( not ( GetEventDamageSource() == udg_Akame_Killer ) ) then
return false
endif
return true
endfunction
function MU_Start_Conditions takes nothing returns boolean
if ( not ( UnitHasBuffBJ(GetAttacker(), 'B008') == true ) ) then
return false
endif
if ( not ( GetAttacker() == udg_Akame_Killer ) ) then
return false
endif
return true
endfunction
function Trig_MU_Conditions takes nothing returns boolean
if ( not MU_Start_Conditions() ) then
return false
endif
return true
endfunction
function MU_Venum_Check takes nothing returns boolean
if ( not ( udg_MU_Venum_counter == 2 ) ) then
return false
endif
return true
endfunction
function MU_del takes nothing returns nothing
if ( MU_Check_lvl_one() ) then
call SetPlayerAbilityAvailableBJ( true, 'A00X', GetOwningPlayer(GetEventDamageSource()) )
call UnitRemoveAbilityBJ( 'A00X', GetEventDamageSource() )
else
if ( MU_Check_lvl_two() ) then
call SetPlayerAbilityAvailableBJ( true, 'A00U', GetOwningPlayer(GetEventDamageSource()) )
call UnitRemoveAbilityBJ( 'A00U', GetEventDamageSource() )
else
if ( MU_Check_lvl_three() ) then
call SetPlayerAbilityAvailableBJ( true, 'A00Y', GetOwningPlayer(GetEventDamageSource()) )
call UnitRemoveAbilityBJ( 'A00Y', GetEventDamageSource() )
else
if ( MU_Check_lvl_four() ) then
call SetPlayerAbilityAvailableBJ( true, 'A013', GetOwningPlayer(GetEventDamageSource()) )
call UnitRemoveAbilityBJ( 'A013', GetEventDamageSource() )
else
call DoNothing( )
endif
endif
endif
endif
endfunction
function Trig_MU_Actions takes nothing returns nothing
call DestroyTrigger(udg_MU_trig)
set udg_MU_Venum_counter = GetRandomInt(1, 5)
set udg_MU_TG = GetAttackedUnitBJ()
if ( MU_Venum_Check() ) then
if ( MU_Check_lvl_one() ) then
call UnitAddAbilityBJ( 'A00X', udg_Akame_Killer )
call SetPlayerAbilityAvailableBJ( false, 'A00X', GetOwningPlayer(udg_Akame_Killer) )
else
if ( MU_Check_lvl_two() ) then
call UnitAddAbilityBJ( 'A00U', udg_Akame_Killer )
call SetPlayerAbilityAvailableBJ( false, 'A00U', GetOwningPlayer(udg_Akame_Killer) )
else
if ( MU_Check_lvl_three() ) then
call UnitAddAbilityBJ( 'A00Y', udg_Akame_Killer )
call SetPlayerAbilityAvailableBJ( false, 'A00Y', GetOwningPlayer(udg_Akame_Killer) )
else
if ( MU_Check_lvl_four() ) then
call UnitAddAbilityBJ( 'A013', udg_Akame_Killer )
call SetPlayerAbilityAvailableBJ( false, 'A013', GetOwningPlayer(udg_Akame_Killer) )
else
call DoNothing( )
endif
endif
endif
endif
set udg_MU_trig = CreateTrigger()
call TriggerRegisterUnitEvent( udg_MU_trig, udg_MU_TG, EVENT_UNIT_DAMAGED )
call TriggerAddCondition( udg_MU_trig, Condition( function MU_Second_Conditions ) )
call TriggerAddAction( udg_MU_trig, function MU_del )
else
call DoNothing( )
endif
endfunction
//===========================================================================
function InitTrig_MU takes nothing returns nothing
set gg_trg_MU = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_MU, EVENT_PLAYER_UNIT_ATTACKED )
call TriggerAddCondition( gg_trg_MU, Condition( function Trig_MU_Conditions ) )
call TriggerAddAction( gg_trg_MU, function Trig_MU_Actions )
endfunction
Суть триггера:
Имеется способность с четырьмя уровнями. На каждом уровне урон способности разный, а шанс срабатывания всегда 25%. При атаке герой, имеющий такую способность имеет шанс (25%) на отравление противника.
Переменная udg_Akame_killer равносильна GetEventDamageSource()
P.S. Возможно кому-то даже пригодится этот код... Сделан полнейшим неумехой в плане jass, так что не судите строго!
Событие "применяет способность" произойдет только если вручную нажать на способность ледяной стрелы и на врага. При авто атаках событие работать не будет.
В будущем для проверки таких моментов пользуйтесь дебагом. В данном случае нужно отключить условие и выводить имя юнита тригера, тогда бы вы увидели что когда примнешь способность имя юнита выводится в чат, а когда он автоатачит, то имя не выводится, что означало бы что триггер не срабатывает, не срабатывает событие
В данном примере под владельцем юнита система понимает изначально кому принадлежал юнит. Триггер не работает после того как здание поменяло владельца. Рабочим способом будет сделать условие проверки принадлежности юнита как показано на скриншоте:
Не "триггерный юнит" а "соответствующий юнит" (Matching Unit).
У тебя нет триггерного юнита, ты выбираешь группу с дополнительным условием соответствия, а значит надо использовать соответствующую переменную.
Я понял, что процесс сделан как и "MPQEditor", но всё равно не доганяю. Объясните или киньте ссылку с объяснением, так как я не нашёл инфы на это.
тебе объяснили
прога редактирует файл
Я например не знаю как это делать.
статьи по с++/java/любойдругойяп ждут тебя
У меня такое впечатление складывается что ты со мной как с нубом разговариваешь.
тебе показалось (за исключением этого коммента)
Ок. Но лучше ответ бы, чем отправлять меня в тёмный лес. =(
это и есть ответ
если тебе надо
Напиши мне раз умный. Я например не знаю как это делать. И потом дай мне и инструкцию напиши к ней. =\
то ты ошибся адресом
это Q/A а не сделай всё за меня
тебе объяснили что надо редактировать и чем
что ещё тебе надо объяснить?
как печатать на клаве или как сохранять отредактированный файл? BaHeK:
war3map.imp - бинарный файл и редактируют его не блокнотом, НЕХ-редактором. Ну и к тому-же там особая структура файла.
блокнот прекрасно справляется
короче ответ на вопрос дан (только злые люди прогу для автора не написали)
поэтому клоз
и контрольный в голову статья про сабж
Все там работает, откуда эта ахинея? Каждый может хостить, ваще неважно какой варик и где, на офф. серверах нужны тока ключи, при этом насрать какие, с кейгена можно вполне проскользнуть. Нужен открытый порт 6112, что ни имеет уже отношения к происхождению варкравта.
Открываем порт и улыбаемся.
Да, можно сделать модель в блендере. Насчет анимаций не знаю, но на hiveworkshop кажется есть модель рыцаря целиком сделанная в blender. Геометрию и развертку перенести точно можно.
Делаешь модель. В блендере задаешь развертку. Экспортируешь модель в mdl формат. На сайте есть всё необходимое для этого. Если делаешь модель в новой версии blender, придётся сперва открыть готовую модель в более старой версии blender, поддерживающей экспорт. Mdl конвертируешь в mdx. (Конвертер есть на сайте) А потом в mdlvis и war3 model editor допиливаешь до играбельного вида.
Текстуру по развертке рисуешь в фотошопе. Сохраняешь в png. Конвертируешь в blp. (Программа есть на сайте) В mdlvis проверяешь.
напиши создателю mdlvis
если найдёшь его а также у него будут исходники и желание фиксить баги то мб пофиксит
но скорее всего как минимум 2 и 3 пунктов будут отсутствовать
Погляди оригинал способность "Призыв к оружию" и "Работника" с "Ополченцем".
Как я помню у обоих указан одинаковый список зданий, проблема в редакторе объектов.
Поскольку никто не ответил, то пришлось решить вопрос самому. Описанный ниже способ пригодится и для изменения других параметров в файле w3i. Для решения я использовал программу W3x2Lni
Запускаем W3x2Lni и помещаем карту сохраненную в классическом редакторе в DnD область программы.
Конвертируем карту в форма Lni, выбрав первый вариант (синяя кнопка). Внутри прожать все флаги.
В директории W3x2Lni появится папка с наименованием вашей карты. Внутри нужно найти папку table, а внутри неё файл w3i (расшифрованный). Скопируйте файл.
Проделываем пункты 1-3 но уже с картой сохраненной в reforged редакторе. Получаем w3i расшифрованный из ref версии карты.
Открываем текстовым редактором w3i из классик редактора и w3i из реф редактора.
Переносим все новые строки из w3i ref в w3i классик.
В готовом w3i классик меняем значения:
format_version = 31 (было 25)
supported_modes = 1
Строка supported_modes это искомая настройка графического режима (SD/HD = 0, SD = 1, HD = 2). Если format_version не перевести с 25 на 31, то строка supported_modes будет проигнорирована (см. структуру w3i).
Помещаем готовый w3i в папку W3x2Lni/наша карта из классик редактора/table
Снова открываем W3x2Lni переносим папку классик карты в DnD область программы.
Конвертируем карту в Obj формат (оранжевая кнопка).
"Набор звуков" нельзя сделать через триггеры, но можно попробовать через импорт файлов заменить стандартные файлы в уже существующих наборах.
Для этого импортируемому файлу надо прописать путь заменяемого.
Тут 2 варианта, надо в редактор ИИ загрузить нестанадратные данные по объектам
Если используется 100% стандартное ИИ то надо его обучить.. делается это простым гуи триггером
Событие - игрок повышет уровень
Условие (2 условия), Тип героя= ваш герой, владелец юнита =управляется компьютером
Действие - учить скилы:
Учим способность R
Учим способность Q - Q спосбность приоритетной прокачки
Учим способность W
Учим способность E
А тут надо быть внимательным... изучение ульты требуется указать вначале... чтобы герой выучил ульту на 6 уровне...
или тут можно зарандомить или написать своё алгоритм.. или же чтобы ИИ учил скилы по другом условиям...в зависимости от тот как у него идёт игра
так зачем ты системные-игровые файлы заменяешь? не думаю что тут кто-то больше графики и звуков меняет. Хотя у меня ещё изменённый редактор, главное меню и кастомные кампании есть... это всё не может иметь отношения к десконнектам (и не имеет)
Ладно если по делу, с этой карты тоже десинхнуло, отключил локальные файлы - так же десинхнуло. Во все остальные могу нормально играть.. ну как играть, я сам ливаю на 2 минуте, играть то не во что
Mate, ну очивидно ошибка реализации, ибо используются одни и те же массивы, в которых происходит коллизия, одни и те же ячейки используют раные способности. Вовсе я бы не советовал так замарачиватся с гуи, а прочитать статьи на jass и забить на все это дело, юзая хештаблицы.
если ты создаешь нейтрально-враждебных то нужно им в игровых константах менять значения
пошамань с этими значениями и все норм будет, ну а если у тебя монстры под контролем других игроков а не нейтралов, то тогда не знаю даже
guard distance - это расстояние на котором крипы агряться
guard return distance - это на какое расстояние мобы могут отходить от место их создания, если они отошли на 1000 они возвращаются обратно
guard return time - типо тоже самое что с расстоянием, только время
при нажатии эскейпа выставляешь переменную булевой на тру, перед тем как проиграть следующую камеру/реплику/покакать, проверяешь значение этой переменной, если соответствует истине, пропускаешь все остальные действия, перед этим можно запустить другой триггер который отвечает за конец синематика (т.е. выдача заданий, выставление камеры в норму, выход из синематика и т.д.)
Maxsavin, я каждой карте из кампаний даю свой кэш, чтобы не перепуталось ничего.
Не знаю, что получилось бы, сделай я один кэш-файл на всю кампу и грузи карты потом не по порядку. Проверять не буду. Кампания - это пак карт.
» WarCraft 3 / Патч игры
» WarCraft 3 / Помогите найти.
» WarCraft 3 / Как сделать стакающиеся атаки?
» WarCraft 3 / HD&SD Reforged
» Администрация XGM / Гифки в превью
» WarCraft 3 / Вопрос по моделькам
» WarCraft 3 / Проверка по баффу
» WarCraft 3 / Не работает триггер
» WarCraft 3 / Вопрос по ИИ
» WarCraft 3 / Как определить минимальное расстояние
» Melee Campaign Heroes / Melee Campaign Heroes Pack - 167 maps
» Melee Campaign Heroes / Melee Campaign Heroes Pack - 167 maps
» WarCraft 3 / Ошибка в Mdlvis
» WarCraft 3 / Моделирование
» WarCraft 3 / Спавн юнитов у здания.
» Администрация XGM / Приглашения в закрытые проекты
» WarCraft 3 / Графика не переключается на Reforged
» WarCraft 3 / Проблема с кастомным героем
» WarCraft 3 / Проблема с триггером
» WarCraft 3 / Не работает перенос моделей в редактор.
» WarCraft 3 / Retera Model Studio не запускается